Memory is an integral part of many electronic devices for storing and retrieving information. Memory may be classified on different bases, such as amount of data (for example, mass storage versus cache memory), access (for example, random access memory versus read-only memory), technology (for example, magnetic versus optical), performance (for example, archival versus execution memory), and the like. With the ubiquity of computers and communication networks for personal and business use, the need for data storage has increased exponentially in recent years. This need is especially increased due to the abundance and constant production of multimedia data such as music, video clips, and pictures. Commensurate with increased use of memory is the increased need for reliability of storage medium and also need for storage of data in absence of power. Relatively recent technologies used for solid-state storage of data, especially for mobile devices, include flash memories and phase-change memories (PCM) that retain stored information in absence of power. To increase reliability of data and reduce storage and transmission errors, error detection and/or correction codes, such as parity bits and ECC, may be used. With the non-volatile, solid-state memory technologies that depend on unidirectional programming, an update of data, such as a second write, is not possible without losing coherence of ECC check bits, unless, the memory is first erased and new ECC check bits are calculated. The process of erasure takes time and reduces memory and/or system performance.